1. Field of the Invention
The present invention relates to a controller, system and method for controlling a cursor and, more particularly, to a controller, system and method for controlling a cursor in which an input parameter signal is calibrated using a first hands-off test when a cursor is in motion and a second hands-off test, different than the first hands-off test, when a cursor is not in motion.
2. Description of the Related Art
Pointing stick cursor control systems, such as the TrackPoint® system, sense finger force at high precision (compared to overload capacity) and translate it (via a transfer function) to velocity of movement of the cursor on the graphical user interface (GUI) display screen. The electrical signals produced by the sensing element are necessarily small (microvolts) and subject to relatively slow drift due to temperature and other environmental changes.
This drift must be detected and removed from the significant signal, otherwise incorrect movement signals will be transmitted, with the most noticeable effect being spontaneous movement of the cursor. This is done by identifying periods when the stick is not being touched (hands-off periods), and using the signal detected at these times as the ‘zero’ signal, relative to which a significant signal is measured (calibrating).
To prevent cursor movement from a minimal signal change before it can be corrected, cursor movement is produced only when a certain minimal relative signal is detected. That is, there is a dead band in the transfer function—signal values close to but not zero for which no movement is produced.
Hands-off periods may be identified from the properties of the signal itself, or some other means, e.g. a capacitive proximity detector, may be used alone or in combination. In any case this can be done only probabalistically—a small force applied perfectly steadily may exactly mimic a temperature drift, and proximity may not mean contact—with the probability of error depending on the noise level (e.g., high frequency >10 Hz), the signal analysis and other detection method, the length of the signal sample analyzed, and perhaps other factors.
Since the signal is small, control of the noise level is difficult. The testing time should be made as short as possible for two principle reasons. First, the user may touch the stick almost continuously, and the shorter the testing time, the more frequently recalibration can be done and the less likely it is that the signal drift will become large enough to cause cursor drift. Secondly, if cursor drift does occur, it will continue until the stick is untouched for at least a testing time. Further, since signal drift normally occurs slowly (e.g., with temperature or other environmental change), there will normally be an extended period when it is detectable but still within the dead band. This allows a recalibration before a cursor movement occurs, and normally avoids spontaneous cursor movement.
However, this may fail for either of two reasons. First, it may fail if the hands-off test fails continuously while the signal drifts outside the dead band relative to its initial value. Second, it may fail if a “hands-off” period is detected in error, and a recalibration occurs to a signal value which is actually outside the dead band relative to the true “hands-off” signal. In the latter case, the cursor, which is properly in motion, stops and when the stick is released it moves with the opposite velocity until a correct recalibration occurs (e.g., for at least the testing time, and longer if the user interferes).
These two failure causes are conflicting. That is, the first cause may be avoided by making the test less stringent (e.g. shortening the testing time), and the second cause may be avoided by making the test more stringent (e.g. lengthening the testing time). Thus, the solution to date for the TrackPoint system has been to choose a compromise value, first 2.88 seconds with measurement precision 3.2 grams, and currently 0.53 seconds with precision 0.8 grams.
Further, in some other pointing stick systems, an input signal is never recalibrated when the cursor is in motion (the more-stringent test always fails) so that the second case error cannot occur. When cursor drift does occur (due to a first-case error), it continues until the user intervenes, with a special key or a reboot.
Thus, in spite of these and other attempts, cursor drift continues to be a nuisance.